diff --git a/system/libraries/Calendar.php b/system/libraries/Calendar.php
index 23d8ffb..a2d9db1 100644
--- a/system/libraries/Calendar.php
+++ b/system/libraries/Calendar.php
@@ -96,6 +96,13 @@
 	public $next_prev_url		= '';
 
 	/**
+	 * Show days of other months
+	 *
+	 * @var bool
+	 */
+	public $show_other_days = FALSE;
+
+	/**
 	 * Class constructor
 	 *
 	 * Loads the calendar language file and sets the default time reference.
@@ -143,6 +150,15 @@
 				$this->$key = $val;
 			}
 		}
+
+		// Set the next_prev_url to the controller if required but not defined
+		if ($this->show_next_prev === TRUE)
+		{
+			if (empty($this->next_prev_url))
+			{
+				$this->next_prev_url = rtrim($this->CI->config->site_url($this->CI->router->class . '/' . $this->CI->router->method), '/') . '/';
+			}
+		}
 	}
 
 	// --------------------------------------------------------------------
@@ -261,10 +277,10 @@
 
 			for ($i = 0; $i < 7; $i++)
 			{
-				$out .= ($is_current_month === TRUE && $day == $cur_day) ? $this->temp['cal_cell_start_today'] : $this->temp['cal_cell_start'];
-
 				if ($day > 0 && $day <= $total_days)
 				{
+					$out .= ($is_current_month === TRUE && $day == $cur_day) ? $this->temp['cal_cell_start_today'] : $this->temp['cal_cell_start'];
+
 					if (isset($data[$day]))
 					{
 						// Cells with content
@@ -279,14 +295,37 @@
 								$this->temp['cal_cell_no_content_today'] : $this->temp['cal_cell_no_content'];
 						$out .= str_replace('{day}', $day, $temp);
 					}
+
+					$out .= ($is_current_month === TRUE && $day == $cur_day) ? $this->temp['cal_cell_end_today'] : $this->temp['cal_cell_end'];
 				}
 				else
 				{
-					// Blank cells
-					$out .= $this->temp['cal_cell_blank'];
+					if ($this->show_other_days === TRUE)
+					{
+						$out .= $this->temp['cal_cell_start_other'];
+
+						if ($day <= 0)
+						{
+							// Day of previous month
+							$prev_month = $this->adjust_date(((int) $month) - 1, $year);
+							$prev_month_days = $this->get_total_days($prev_month['month'], $prev_month['year']);
+							$out .= str_replace('{day}', $prev_month_days + $day, $this->temp['cal_cell_other']);
+						}
+						else
+						{
+							// Day of next month
+							$out .= str_replace('{day}', $day - $total_days, $this->temp['cal_cell_other']);
+						}
+
+						$out .= $this->temp['cal_cell_end_other'];
+					}
+					else
+					{
+						// Blank cells
+						$out .= $this->temp['cal_cell_start'] . $this->temp['cal_cell_blank'] . $this->temp['cal_cell_end'];
+					}
 				}
 
-				$out .= ($is_current_month === TRUE && $day == $cur_day) ? $this->temp['cal_cell_end_today'] : $this->temp['cal_cell_end'];
 				$day++;
 			}
 
@@ -457,13 +496,16 @@
 			'cal_row_start'				=> '<tr>',
 			'cal_cell_start'			=> '<td>',
 			'cal_cell_start_today'		=> '<td>',
+			'cal_cell_start_other'		=> '<td style="color: #666;">',
 			'cal_cell_content'			=> '<a href="{content}">{day}</a>',
 			'cal_cell_content_today'	=> '<a href="{content}"><strong>{day}</strong></a>',
 			'cal_cell_no_content'		=> '{day}',
 			'cal_cell_no_content_today'	=> '<strong>{day}</strong>',
 			'cal_cell_blank'			=> '&nbsp;',
+			'cal_cell_other'			=> '{day}',
 			'cal_cell_end'				=> '</td>',
 			'cal_cell_end_today'		=> '</td>',
+			'cal_cell_end_other'		=> '</td>',
 			'cal_row_end'				=> '</tr>',
 			'table_close'				=> '</table>'
 		);
@@ -490,7 +532,7 @@
 
 		$today = array('cal_cell_start_today', 'cal_cell_content_today', 'cal_cell_no_content_today', 'cal_cell_end_today');
 
-		foreach (array('table_open', 'table_close', 'heading_row_start', 'heading_previous_cell', 'heading_title_cell', 'heading_next_cell', 'heading_row_end', 'week_row_start', 'week_day_cell', 'week_row_end', 'cal_row_start', 'cal_cell_start', 'cal_cell_content', 'cal_cell_no_content', 'cal_cell_blank', 'cal_cell_end', 'cal_row_end', 'cal_cell_start_today', 'cal_cell_content_today', 'cal_cell_no_content_today', 'cal_cell_end_today') as $val)
+		foreach (array('table_open', 'table_close', 'heading_row_start', 'heading_previous_cell', 'heading_title_cell', 'heading_next_cell', 'heading_row_end', 'week_row_start', 'week_day_cell', 'week_row_end', 'cal_row_start', 'cal_cell_start', 'cal_cell_content', 'cal_cell_no_content', 'cal_cell_blank', 'cal_cell_end', 'cal_row_end', 'cal_cell_start_today', 'cal_cell_content_today', 'cal_cell_no_content_today', 'cal_cell_end_today', 'cal_cell_start_other', 'cal_cell_other', 'cal_cell_end_other') as $val)
 		{
 			if (preg_match('/\{'.$val.'\}(.*?)\{\/'.$val.'\}/si', $this->template, $match))
 			{
